/*
 * Util.js
 * version: 2.43 (2010-11-26)
 * jiaojun
 * 
 * 判断是否为数字或字母的组合		isNumberAndAlpha(s)
 * 判断是否为数字	isValidNum(s)
 * 判断是字符中的各个元素是否相同	isSame(str)
 * 判断是否为空	isNull(value)
 * 判断是否为有效的电子邮件地址	isValidEmail(s)
 * 判断是否为邮政编码 isValidZipCode(s) 
 * 验证用户名规则	isValidUsername(s,len)
 * 验证密码规则	isValidPwd(value)
 * 检验字符串S是否为有效长度	isValidLen(s,min,max)
 * 清空表格	clearTable(tableId)
 * 去左空格	ltrim(s)
 * 去右空格	rtrim(s)
 * 去左右空格	trim(s)
 * 只允许输入数字	onlyNum()
 * 只允许输入英文字母		onlyEng()
 * 只允许输入英文字母和数字的组合		onlyEngNum()
 * 只允许输入英文字母和数字以及-_的组合	onlyW()
 * 是否为有效的昵称	isValidNickname( nickname )
 * 计算字符的长度,汉字算2个字符,英文字母和数字算一个字符	Length(s)
 * 截取字符串	SubString(s,lens)
 * 校验搜索关键字	isSearch(s)
 * 输入框文字切换	clearValue(id,default_value)
 * 等比缩小图片onload="drawImage(this,114,82)" 
 * 将包含HTML标签的文本 替换	replaceHTMLTag(str) 
 * 
 * String函数
 *     trim(s);
 *     replaceAll(s1,s2);        
 */
//判断是否为数字或字母的组合
//是:返回true
//否:返回false
function isNumberAndAlpha(s){   
	var regu = "^[A-Za-z0-9]+$";
	var re = new RegExp(regu);
	if (s.search(re)==-1) {
		return false;
	} else {
		return true;
	}
}

//判断是否为数字
//是:返回true
//否:返回false
function isValidNum(s){
	var regex = /^([0-9])+$/;
	return regex.test(s);
}

//判断是字符中的各个元素是否相同
//否:返回true
//是:返回false
function isSame(str){
     var reg=/(\w)\B(?!\1)(\w)*/ig;
     var result = reg.test(str);
	 return result;
}

//判断是否为数字或字母的组合
//是:返回true
//否:返回false
function isW(s){   
	var regex = /^([A-Za-z0-9]){1}([\w-])*([A-Za-z0-9]){1}$/;
	return regex.test(s);
}

//trim函数
String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g,"");
};

//replaceAll函数
String.prototype.replaceAll  = function(s1,s2){   
	return this.replace(new RegExp(s1,"gm"),s2);   
};

//判断是否为空
//是:返回true
//否:返回false	
function isNull(value) {
	if ((value == null) || (value.trim() == "")) {
	   return true;
	} else {
	    return false;
	}
}

//判断是否为有效的电子邮件地址
//是:返回true
//否:返回false
function isValidEmail(s){
	var regex = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
	return regex.test(s);
}

//判断是否为邮政编码
//是:返回true
//否:返回false
function isValidZipCode(s){
	var regex = /^([0-9]){6}$/;
	return regex.test(s);
}
//验证用户名规则
//是:返回true
//否:返回false
function isValidUsername(s,len){
	//alert(s.toLowerCase());
	var maxLen=20;
	if(parseInt(len)>0){
		maxLen=parseInt(len);
	}
	if(isNull(s)){
		return false;
	}
	if(!isW(s)){
		return false;
	}
	if(!isValidLen(s,6,20)){
		return false;
	}
	if(s.toLowerCase()=="system"||s.toLowerCase()=="null"||s.toLowerCase()=="admin"){
		//alert("system");
		return false;
	}
	//alert(s.length);
	return true;
}
//验证密码规则
//是:返回true
//否:返回false
function isValidPwd(value) {
	var regex = /^([0-9]|[a-z]|[A-Z]){6,16}$/;
	return regex.test(value);
}

//检验字符串S是否为有效长度
function isValidLen(s,min,max){
	var minLen=0;
	var maxLen=16;
	if(parseInt(min)!=0){
		minLen=parseInt(min);
	}
	if(parseInt(max)>0){
		maxLen=parseInt(max);
	}
	if(s.length<minLen){
		return false;
	}
	if(s.length>maxLen){
		return false;
	}
	return true;
}

function isMaxLimit(s,max){
	var maxLen=16;
	if(parseInt(max)>0){
		maxLen=parseInt(max);
	}
	if(s.length>maxLen){
		return false;
	}
	return true;
}

function isMinLimit(s,min){
	var minLen=0;
	if(parseInt(min)){
		minLen=parseInt(min);
	}
	if(s.length<minLen){
		return false;
	}
	return true;
}

//清空表格
function clearTable(tableId) {
	var tableEle = document.getElementById(tableId);
	var tBody = tableEle.getElementsByTagName("TBODY")[0];
	while (tBody.rows.length > 0) {
		tBody.deleteRow(tBody.rows.length - 1);
	}
}

//只允许输入数字
function onlyNum() {
	var keycode=window.event.keyCode;
	if(keycode==8||keycode==9||keycode==35||keycode==36||keycode==37||keycode==39||keycode==46){
		return true;
	}
	if (!((window.event.keyCode>=48&&window.event.keyCode<=57)||(window.event.keyCode>=96&&window.event.keyCode<=105))) {
		window.event.returnValue = false;
	}
}

//只允许输入英文字母
function onlyEng() {
	var keycode=window.event.keyCode;
	if(keycode==8||keycode==9||keycode==35||keycode==36||keycode==37||keycode==39||keycode==46){
		return true;
	}
	if(!(window.event.keyCode>=65&&window.event.keyCode<=90)){
		window.event.returnValue=false;
	}
}

//只允许输入英文字母和数字的组合
function onlyEngNum() {
	//alert(window.event.keyCode);
	var keycode=window.event.keyCode;
	if(keycode==8||keycode==9||keycode==35||keycode==36||keycode==37||keycode==39||keycode==46){
		return true;
	}
	if(!((keycode>=48&&keycode<=57)||(keycode>=65&&keycode<=90)||(keycode>=96&&keycode<=105))){
		window.event.returnValue=false;
	}
}

//只允许输入英文字母和数字以及-_的组合
function onlyW() {
	//alert(window.event.keyCode);
	var keycode=window.event.keyCode;
	if(keycode==8||keycode==9||keycode==35||keycode==36||keycode==37||keycode==39||keycode==46||keycode==189){
		return true;
	}
	if(!((keycode>=48&&keycode<=57)||(keycode>=65&&keycode<=90)||(keycode>=96&&keycode<=105))){
		window.event.returnValue=false;
	}
}

//是否为有效的昵称
function isValidNickname( nickname ) {
	var regex = /^([\u4E00-\u9FA5]|[0-9]|[a-z]|[A-Z]){2,20}$/;
	if ( regex.test( nickname ) == false ) {
		return false;
	} 
	var chinesePattern = /^[\u4E00-\u9FA5]$/;
	var len = 0;
	for ( var index = 0; index < nickname.length; index++ ) {
		var c = nickname.charAt(index);
		if ( chinesePattern.test(c) ) {
			len += 2;
		} else {
			len += 1;
		}
	}
	if ( (len > 20) || (len < 4) ) {
		return false;
	}
	return true;
}

//计算字符的长度,汉字算2个字符,英文字母和数字算一个字符
function Length(s){
	var chinesePattern = /^[\u4E00-\u9FA5]$/;
	var len = 0;
	for(var index = 0; index < s.length; index++ ) {
		var c = s.charAt(index);
		if ( chinesePattern.test(c)) {
			len += 2;
		} else {
			len += 1;
		}
	}
	return len;
}
//截取字符串
function SubString(s,lens){
	var chinesePattern = /^[\u4E00-\u9FA5]$/;
	var len = 0;
	if(Length(s)<lens){
		return s;
	}
	for(var index = 0; index < s.length; index++ ) {
		var c = s.charAt(index);
		if ( chinesePattern.test(c)) {
			len += 2;
		} else {
			len += 1;
		}
		if(len==lens){
			len=index+1;
			break;
		}
		if(len==lens+1){
			len=index;
			break;
		}
	}
	s=s.substring(0,len);
	return s;
}

//校验搜索关键字
function isSearch(s){ 
	var regex=/^[^`~!@#$%^&*()+=|\\\[\]\{\}:;\’\,.<>\/?]{1}[^`~!@$%^&()+=|\\\[\]\{\}:;\’\,.<>?]{0,19}$/; 
	return regex.test(s);
} 

function filter(obj) {
var oldStr=obj.value;
var newStr="";
for(var i=0;i<oldStr.length;i++){
	if(oldStr.charCodeAt(i)<32)
	{
	newStr+="";
	}else{
	newStr+=oldStr.charAt(i);
	}
}
obj.value=newStr;
}



//输入框文字切换
function clearValue(id,default_value){
	if(document.getElementById(id).value == default_value){
		document.getElementById(id).value="";
	}else if(trim(document.getElementById(id).value) == ""){
		document.getElementById(id).value=default_value;
	}else{
	}
}

//去左空格; 
function ltrim(s){ 
	return s.replace( /^\s*/, ""); 
} 
//去右空格; 
function rtrim(s){ 
	return s.replace( /\s*$/, "");
} 
//去左右空格; 
function trim(s){ 
	return rtrim(ltrim(s)); 
} 

function add_value(id,value,default_value)
{
	if(document.getElementById(id))
	{
		if(document.getElementById(id).value == default_value) document.getElementById(id).value = value;
			else document.getElementById(id).value = document.getElementById(id).value +";" +value;
	}
}
//等比缩小onload="drawImage(this,114,82)"
function drawImage(ImgD,FitWidth,FitHeight){     
		var image=new Image();     
		image.src=ImgD.src;     
		if(image.width>0 && image.height>0){         
			if(image.width/image.height>= FitWidth/FitHeight){             
				if(image.width>FitWidth){                 
					ImgD.width=FitWidth;                 
					ImgD.height=(image.height*FitWidth)/image.width;             
				}else{                 
					ImgD.width=image.width;                 
					ImgD.height=image.height;             
				}         
			} else{             
				if(image.height>FitHeight){                 
					ImgD.height=FitHeight;                 
					ImgD.width=(image.width*FitHeight)/image.height;             
				}else{                 
					ImgD.width=image.width;                 
					ImgD.height=image.height;             
				}         
			}     
		} 
	} 
//将包含HTML标签的文本 替换
function replaceHTMLTag(str){
	str=str.replace(/&/g,"&amp;"); 
	str=str.replace(/</g,"&lt;"); 
	str=str.replace(/>/g,"&gt;"); 
	str=str.replace(/\n/g,"<br>"); 
	str=str.replace(/\"/g,"&quot;"); 
	str = str.replace(" ", "&nbsp;") 
    str = str.replace(CHR(34), "&quot;") 
    str = str.replace(CHR(39), "&#39;") 

	return str; 
}